<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>如何阅读函数的定义（函数原型）</title>

 </head>
 <body><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="about.notes.html">关于用户注释</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="about.phpversions.html">本手册中所涉及的 PHP 版本</a></div>
 <div class="up"><a href="about.html">关于本手册</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div><hr /><div id="about.prototypes" class="sect1">
  <h2 class="title">如何阅读函数的定义（函数原型）</h2>
  <p class="para">
   文档中的每个函数都只是快速参考，学会如何阅读和理解文档将使得
   PHP 的使用更加简单。和依赖赖于复制／粘贴范例比起来，用户一定更希望知道如何阅读函数的定义（函数原型）：
  </p>
  <blockquote class="note"><p><strong class="note">Note</strong>: 
   <strong>
    先决条件，对<a href="language.types.html" class="link">变量类型</a>的基本理解
   </strong><br />
   <p class="para">
    尽管 PHP 是一种松散类型语言，但对<a href="language.types.html" class="link">变量类型</a>有一个基本的理解也是非常重要的，因为它们有重要的意义。
   </p>
  </p></blockquote>
  <p class="para">
   函数定义告诉我们函数<a href="functions.returning-values.html" class="link">返回</a>什么类型的值，让我们用函数
   <span class="function"><a href="function.strlen.html" class="function">strlen()</a></span> 的定义作为第一个范例：
  </p>
  <p class="para">
  <div class="example-contents screen">
<div class="cdata"><pre>
strlen

(PHP 4, PHP 5)
strlen -- 获取字符串长度

说明
int strlen ( string str )

返回给定的字符串 string 的长度。
</pre></div>
   </div>
  </p>
  <p class="para">
   <table class="doctable table">
    <caption><strong>对函数定义的解释</strong></caption>
    
     <thead>
      <tr>
       <th>组成部分</th>
       <th>说明</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>
        strlen
       </td>
       <td>
        函数名称。
       </td>
      </tr>

      <tr>
       <td>
        (PHP 4, PHP 5)
       </td>
       <td>
        strlen() 在 PHP 4 和 PHP 5 的所有版本中都存在。
       </td>
      </tr>

      <tr>
       <td>
        int
       </td>
       <td>
        该函数返回的值的类型，这里为整型 <span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>（即以数字来衡量的字符串的长度）。
       </td>
      </tr>

      <tr>
       <td>
        ( string str )
       </td>
       <td>
        第一个（本例中是唯一的）参数，在该函数中名为 <em><code class="parameter">str</code></em>，且类型为 <span class="type"><a href="language.types.string.html" class="type string">string</a></span>。
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
  <p class="para">
   可以将以上函数的定义写成一般形式：
  </p>
  <p class="para">
   <div class="example-contents screen">
<div class="cdata"><pre>
      返回类型          函数名           ( 参数类型          参数名 )
      returned type    function name    ( parameter type   parameter name )
</pre></div>
   </div>
  </p>
  <p class="para">
   很多函数都有多个变量，例如 <span class="function"><a href="function.in-array.html" class="function">in_array()</a></span>。其函数原型如下：
  </p>
  <p class="para">
   <div class="example-contents screen">
<div class="cdata"><pre>
      bool in_array ( mixed $needle, array $haystack [, bool $strict])
</pre></div>
   </div>
  </p>
  <p class="para">
   这是什么意思？<span class="function"><a href="function.in-array.html" class="function">in_array()</a></span>
   返回一个“<a href="language.types.boolean.html" class="link">布尔</a>”值，成功（如果在参数
   <em><code class="parameter">haystack</code></em> 中能找到参数
   <em><code class="parameter">needle</code></em>）则返回 <strong><code>TRUE</code></strong>,
    或者在失败时返回 <strong><code>FALSE</code></strong>（如果在参数 <em><code class="parameter">haystack</code></em> 中找不到参数
   <em><code class="parameter">needle</code></em>）。第一个参数被命名为
   <em><code class="parameter">needle</code></em> 且其<a href="language.types.html" class="link">类型</a>不定，因此我们将其称为“<em class="emphasis">混和</em>”类型。该混和类型的
   <em><code class="parameter">needle</code></em> 参数（我们要找的对象）可以是一个标量的值（字符串、整数、或者<a href="language.types.float.html" class="link">浮点数</a>），或者一个<a href="language.types.array.html" class="link">数组</a>。<em><code class="parameter">haystack</code></em>（我们寻找的范围）是第二个参数。第三个<em class="emphasis">可选</em>参数被命名为
   <em><code class="parameter">strict</code></em>。所有的可选参数都用
   <em class="emphasis">[</em> 方括号 <em class="emphasis">]</em> 括起来。手册表明
   <em><code class="parameter">strict</code></em> 参数默认值为布尔值
   <strong><code>FALSE</code></strong>。需要了解函数工作的细节，请参阅手册中和该函数相关的页面。
  </p>
  <p class="para">
   有的函数包含更复杂的 PHP 版本信息。我们拿
   <span class="function"><a href="function.html-entity-decode.html" class="function">html_entity_decode()</a></span> 举例：
  </p>
  <p class="para">
   <div class="example-contents screen">
<div class="cdata"><pre>
(PHP 4 &gt;= 4.3.0, PHP 5)
</pre></div>
   </div>
  </p>
  <p class="para">
   它意味着该函数不可在 PHP 3 中使用，只可在 PHP 4.3.0 及以后发布的版本中使用。
  </p>
 </div><hr /><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="about.notes.html">关于用户注释</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="about.phpversions.html">本手册中所涉及的 PHP 版本</a></div>
 <div class="up"><a href="about.html">关于本手册</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div></body></html>
